package com.knight.message;

import org.springframework.context.ApplicationEvent;

/**
 * 对spring事件信息的再次包装
 *
 * @param <T> 代表了需要传递给监听器的事件的具体数据信息
 * @param <E> 代表了消息事件的类型
 * @author knight
 */
public class EventDate<E,T> extends ApplicationEvent {


    private E eventType;

    private T data;

    public EventDate(Object source, T data, E eventType) {
        super(source);
        this.data = data;
        this.eventType = eventType;
    }

    /**
     * 获取消息实体数据
     *
     * @return
     */
    public T getDate() {
        return data;
    }

    /**
     * 赋值消息实体数据
     *
     * @param data
     */
    public void setDate(T data) {
        this.data = data;
    }

    /**
     * 获取事件消息类型
     *
     * @return
     */
    public E getEventType() {
        return eventType;
    }

    /**
     * 赋值事件消息类型
     *
     * @param eventType
     */
    public void setEventType(E eventType) {
        this.eventType = eventType;
    }
}
